package com.zxy.pojo.dto;

import jakarta.validation.constraints.Pattern;
import lombok.Data;
import org.hibernate.validator.constraints.Range;


/**
 * 字典类型列表查询参数VO（接收GET请求的query参数）
 */
@Data
public class DictTypeQueryVO {
    /** 页码（默认1） */
    @Range(min = 1, message = "页码不能小于1")
    private Integer pageNum = 1;

    /** 每页条数（默认10） */
    @Range(min = 1, max = 100, message = "每页条数需在1-100之间")
    private Integer pageSize = 10;

    /** 字典名称（模糊查询，可选） */
    private String dictName;

    /** 字典类型编码（精确查询，可选） */
    private String dictType;

    /** 状态（0：正常，1：禁用，可选） */
    private String status;

    /** 时间范围参数（对应请求中的params[beginTime]、params[endTime]） */
    private TimeParam params;

    /**
     * 内部类：时间范围参数（创建时间的开始/结束时间）
     */
    @Data
    public static class TimeParam {
        /** 开始时间（格式：yyyy-MM-dd HH:mm:ss，可选） */
        @Pattern(regexp = "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$",
                 message = "开始时间格式错误，需为'yyyy-MM-dd HH:mm:ss'")
        private String beginTime;

        /** 结束时间（格式：yyyy-MM-dd HH:mm:ss，可选） */
        @Pattern(regexp = "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$", 
                 message = "结束时间格式错误，需为'yyyy-MM-dd HH:mm:ss'")
        private String endTime;
    }
}